package cn.jiyun.service;

import cn.jiyun.commons.vo.BootstrapTableData;
import cn.jiyun.dao.domain.User;
import cn.jiyun.service.dto.JsonRes;

import java.util.List;

public interface UserService {
    /**
     * 用户登录
     * @param user 封装用户名密码
     * @return 如果返回null表示登录失败；非null表示登录成功
     */
    User loginUser(User user);

    /**
     * 分页查询用户列表
     * @param userData 查询条件数据
     * @param pageNumber 页码
     * @param pageSize 页容量
     * @param ordername 排序属性名称
     * @param order 倒序|升序
     * @return
     */
    BootstrapTableData getPaginatedUsers(User userData, Integer pageNumber, Integer pageSize, String ordername, String order);

    /**
     * 新增或修改用户
     * @param user
     * @return
     */
    JsonRes reserveUser(User user);

    /**
     * 删除用户
     * @param ids
     * @return
     */
    boolean deleteUser(List<Integer> ids);

    /**
     * 根据邮箱发送验证码
     * @param email
     * @return
     */
    JsonRes sendEmailCode(String email, String code);

    /**
     * 通过邮箱验证码修改密码
     * @param user 用户信息
     * @param registerCode 前端传递的验证码
     * @param sessionCode session中保存的验证码
     * @return
     */
    JsonRes resetPassword(User user, String registerCode, String sessionCode);
}
